In any industry, enterprise, endeavor, or the like data regarding aspects thereof is accumulated over time for among other things the purpose of reporting status. For example, and with regard to a sales enterprise, sales data can be accumulated with regard to each sale of an item, including the salesman, the customer, the region of the salesman, the region of the customer, the amount of the sale, the quantity of the item sold, the date of the sale, the date of the delivery of the sold item, and/or the like. Based on such sales data, then, it may be that a report is generated that details sales by year, by month, by customer by year, by item by quarter, by salesman by delivery date, by region by week, and/or the like.
Most any report based on report data is generated based on a report definition. As may be appreciated, such report definition describes how to render the report on a page or screen or the like, and in particular describes how to lay out areas on the report such as a header, a footer, a group header, a group footer, a sub-group header, a sub-group footer, a table or other details based on report data, and/or the like. An example of an application for defining a report and rendering the report based on the definition is MICROSOFT ACCESS data organizing and reporting software as developed and marketed by MICROSOFT Corporation of Redmond, Wash., USA.
Significantly, in the prior art, data is organized within a defined report according to bands that extend between the sides of the page, screen, or the like (hereinafter “page”). Thus, a defined report as rendered on a page is a series of bands that extend in one dimension from the top of the page to the bottom thereof. Without anything more, then, elements of organized data within the report such as tables, charts, graphs, and the like are restricted to likewise extending in the one dimension from the top of the page to the bottom of the page. That is, and as an example, a table of data and a graph pictorially representing the table cannot be arranged side-by-side within a band.
In an effort to rectify the inability to define side-by-side elements within a band of a defined report, various artifices have been devised. In one artifice in particular, side-by-side elements are created within a band of a defined report by means of defining sub-reports for each element. However, defining and using such sub-reports is overly complex and cumbersome and still does not achieve more sophisticated goals such as layering elements on top of each other.
Accordingly, a need exists for a report definition and processing system and method that allows a report to be defined such that elements of organized data in the report can extend in more than one dimension, including down a page, across the page, and layered on the page. In particular, a need exists for a report definition and processing system and method that allows a report to be defined according to data regions that are to appear on the page, where the data regions are not bound to extending in any particular dimension. In addition, a need exists for a report definition and processing system and method that is extensible in that custom data can be set forth in a report definition and can be acted upon by an appropriate extension of the system.